#include "Estruturas.h"
#include "ManipulaCaptura.c"
#include "ManipulaIndividuos.c"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int buscaCapturaIndividuo(int idIndividuo){
  FILE *file = fopen("capturas.data","r");
  fseek(file, 0, SEEK_SET);
  int count = 0;
  
  while(!feof(file)){
    char valido = 0;
    Captura captura = lerCapturaArquivo(file, &valido);
    if((captura.idIndividuo == idIndividuo) && (valido)){
      printf("Captura: %d -> Individuo: %d, comprimento %d, largura %d, peso %d, local %s\n",captura.id, captura.idIndividuo, captura.comprimento, captura.largura, captura.peso, captura.local);            
      count++;
    }    
  }
  fclose(file);
  return count;
}

void buscarUltimaCapturaIndividuo(int idIndividuo){
  FILE *file = fopen("capturas.data","r");
  fseek(file, 0, SEEK_SET);
  Captura capturaEncontrada;
  int auxId = -1;
  
  while(!feof(file)){
    char valido = 0;
    Captura captura = lerCapturaArquivo(file, &valido);
    if((captura.idIndividuo == idIndividuo) && (valido)){
      auxId = captura.id;
      capturaEncontrada = captura;
    }       
  }
  
  if (auxId != -1){
    printf("Captura: %d -> Individuo: %d, comprimento %d, largura %d, peso %d, local %s\n",capturaEncontrada.id, capturaEncontrada.idIndividuo, capturaEncontrada.comprimento, capturaEncontrada.largura, capturaEncontrada.peso, capturaEncontrada.local);            
  }else{
    
  }
  
  fclose(file);
  
}


int buscaCapturaEspecie(int idEspecie){
  FILE *fileCap = fopen("capturas.data","r");
  FILE *fileInd = fopen("individuos.txt","r");  
  fseek(fileCap, 0, SEEK_SET);
  fseek(fileInd, 0, SEEK_SET);  
  Captura captura;
  int count = 0;
  
  while  (!feof(fileCap)){
    char valido = 0;
    captura = lerCapturaArquivo(fileCap, &valido);
    if(valido){
      Individuo individuo = lerIndividuoID(fileInd, captura.idIndividuo);
      if(individuo.idEspecie == idEspecie){
	printf("Captura: %d -> Individuo: %d, especie : %d, comprimento %d, largura %d, peso %d, local %s\n",captura.id, captura.idIndividuo, individuo.idEspecie, captura.comprimento, captura.largura, captura.peso, captura.local);            
	count++;
      }
    }
  }
  fclose(fileCap);
  fclose(fileInd);
  return count;
}

void menuHistorico(){  
    int opcao = 0;
    int idEspecie = -1;
    int idIndividuo = -1;
    
    do
    {
        printf("\n\nMENU HISTORICO\n");
        printf("\n1 = Historico de capturas por Individuo");
        printf("\n2 = Historico de capturas por Especie");
        printf("\n3 = Ultima captura de individuo");
        printf("\n0 = Sair\n\n");
        scanf("%d",&opcao);

        switch (opcao) {
	  case 1:{         
	      printf("\nDigite o ID Individuo: ");
	      scanf("%d",&idIndividuo);
	      
	      if (buscaCapturaIndividuo(idIndividuo) == 0){
		printf("Capturas para o individuo não encontrado\n");
	      }
	      break;
	  }
	  case 2:{
	      printf("\nDigite o ID Especie: ");
	      scanf("%d",&idEspecie);
	      
	      if (buscaCapturaEspecie(idEspecie) == 0){
		printf("Capturas para a especia não encontrada\n");
	      }
	      break;	  
	  }
	  case 3:{
	      printf("\nDigite o ID Individuo: ");
	      scanf("%d",&idIndividuo);
	      
	      buscarUltimaCapturaIndividuo(idIndividuo);
	      break;        
	  }
        }



    } while (opcao != 0);
}

/*int main(){
    if (buscaCapturaIndividuo(1) == 0){
      printf("Capturas para o individuo não encontrado\n");
    }
    
    if (buscaCapturaEspecie(2) == 0){
      printf("Capturas para a especie não encontrado\n");
    }
    
    buscarUltimaCapturaIndividuo(1);
        
}*/